package com.wzz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wzz.dto.AddUserDto;
import com.wzz.dto.LoginDto;
import com.wzz.dto.RegisterDto;
import com.wzz.dto.UpdateUserInfoDto;
import com.wzz.entity.User;
import com.wzz.vo.PageResponse;
import com.wzz.vo.UserInfoVo;

import java.util.List;


public interface UserService extends IService<User> {

    /**
     * 注册
     * @param registerDto
     * @return
     */
    String register(RegisterDto registerDto);

    /**
     * 检验名称
     * @param username
     * @return
     */
    Boolean checkUsername(String username);

    /**
     * 登录
     * @param loginDto
     * @return
     */
    String login(LoginDto loginDto);

    /**
     * 根据名称获取用户信息
     * @param username
     * @return
     */
    User getUserByUsername(String username);

    // 这里要reset cache 所以必须要有更新后的数据返回
    User updateUserInfo(UpdateUserInfoDto updateUserInfoDto);

    /**
     * 获取用户
     * @param loginName
     * @param trueName
     * @param pageNo
     * @param pageSize
     * @return
     */
    PageResponse<UserInfoVo> getUser(String loginName, String trueName, Integer pageNo, Integer pageSize);

    void handlerUser(Integer type, String userIds);

    void addUser(AddUserDto addUserDto);

    UserInfoVo getUserInfoById(Integer userId);

    List<UserInfoVo> getUserInfoByIds(List<Integer> userIds);
}
